package com.it.od.old2021.deke2;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author: liminghui
 * @date: 2022/8/20 0:56
 * @version: 1.0
 * @description: 交换任意两个字符，求最小字符串
 */
public class Main67 {
    /*
       给定一个字符串S

       变化规则:
        交换字符串中任意两个不同位置的字符

       输入描述：
        一串小写字母组成的字符串
       输出描述：
        按照要求变换得到最小字符串

       实例1：
        输入：、
        abcdef
       输出
        abcdef

       实例2：
        输入
        bcdefa
        输出
        acdefb

       s都是小写字符组成
       1<=s.length<=1000
        */
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        in.close();

        char[] chars = str.toCharArray();
        String minStr = String.valueOf(chars); // 保存最小字符串

        for (int i = 0; i < chars.length - 1; i++) {
            for (int j = i + 1; j < chars.length; j++) {
                char[] chars1 = Arrays.copyOf(chars, chars.length);
                swap(chars1, i, j);
                minStr = String.valueOf(chars1).compareTo(minStr) < 0 ? String.valueOf(chars1) : minStr;
            }
        }
        System.out.println(minStr);
    }

    private static void swap(char[] chars1, int i, int j) {
        char tmp = chars1[i];
        chars1[i] = chars1[j];
        chars1[j] = tmp;
    }
}
